package com.graduationdesign.zengyan.graduationdesignapp.ui.contact;

import com.graduationdesign.zengyan.graduationdesignapp.dataLayer.base.Result;
import com.graduationdesign.zengyan.graduationdesignapp.dataLayer.dataBase.RecentlyUsed;
import com.graduationdesign.zengyan.graduationdesignapp.dataLayer.model.Event;
import com.graduationdesign.zengyan.graduationdesignapp.dataLayer.model.Organization;
import com.graduationdesign.zengyan.graduationdesignapp.dataLayer.model.User;
import com.graduationdesign.zengyan.graduationdesignapp.dataLayer.model.resultModel.EventResultModel;
import com.graduationdesign.zengyan.graduationdesignapp.dataLayer.model.resultModel.SignUpResult;
import com.graduationdesign.zengyan.graduationdesignapp.ui.base.BaseContact;
import com.graduationdesign.zengyan.graduationdesignapp.ui.base.BaseLoadingView;

import java.util.List;

/**
 * Created by ZengYan on 2018/4/24.
 *
 * @desc :
 */
public interface ProfileContact {

    interface Presenter extends BaseContact.BasePresenter {

        void loadOrgsIJoinIn(String stunum, BaseLoadingView loadingView);

        void loadPeople(String stunum, BaseLoadingView loadingView);

        void signUp(String stunum, int event_id);

        void loadEventsISignUp(String stunum);

        void loadAllEvents();

        void searchUser(String stunum , String message);

        void loadRecentlyUsed();

    }

    interface ShowRecentlyUsed extends BaseContact.BaseView{
        void showRecentlyUsed(List<RecentlyUsed> list);

    }

    interface ShowOrgsIJoin extends BaseContact.BaseView {

        void showOrgsIJoin(List<Organization> list);
    }

    interface ShowPeopleInfo extends BaseContact.BaseView{
        void showPeopleInfo(User user);
    }

    interface ShowEventsISignUp extends BaseContact.BaseView {
        void showEventsISignUp(List<Event> list);
    }

    interface ShowSignUpResult extends BaseContact.BaseView{
        void showSignUpResult(Result<SignUpResult> result);
    }

    interface ShowAllEvents extends BaseContact.BaseView{
        void showAllEvents(List<EventResultModel> events);
    }

    interface ShowSearchUsers{
        void showSearchUsers(List<User> list);
    }
}
